await 关键字只能在 async def 函数内部使用。它的作用是告诉事件循环:“我现在要调用另一个异步操作,它可能需要一些时间,请你先暂停我,去做点别的事,等它完成了再叫醒我。”

await 右边通常是一个协程对象或其它可等待对象 (Awaitable)。

Python

async def main():
    # 当执行到 await 时,main() 协程会暂停
    # 控制权交还给事件循环,事件循环去驱动 other_async_func()
    # 等 other_async_func() 执行完毕返回值后,main() 才从这里恢复执行
    result = await other_async_func()
    print(result)

await 是协程协作的信号,它将控制权从一个协程“传递”给另一个协程(通过事件循环的中转)。没有 await,协程就只是一个不会被执行的普通对象。

相关链接: